沪胶期货分析框架

In [1]:
# 导入所需模块
import getdata,myfunc
from baseset import *
from getdata import getdata
from myfunc import xgfx,pplot
import pandas as pd

# 获取数据
fpath ='./data/w_datadic_ru.xlsx'
df = getdata(fpath,freq='day')
# df_sd =getdata(fpath,freq='year')
Welcome to use Wind Quant API for Python (WindPy)!

COPYRIGHT (C) 2017 WIND INFORMATION CO., LTD. ALL RIGHTS RESERVED.
IN NO CIRCUMSTANCE SHALL WIND BE RESPONSIBLE FOR ANY DAMAGES OR LOSSES CAUSED BY USING WIND QUANT API FOR Python.

商品

商品指数

In [2]:
label1='Wind橡胶指数'
label2='Wind商品指数'
xgfx(df,label1,label2)

原油

In [3]:
label1='Wind橡胶指数'
label2='布油'
xgfx(df,label1,label2)

【解读】

相关性:绝大多数时间维持在以0.6为底,0.8为中枢的范围内,1998.9-1999.8,2007.6-2008.1,2015.6-2015.10,2017.12-至今处于0.6以下

汇率

美元指数

In [4]:
label1='Wind橡胶指数'
label2='美元指数'
xgfx(df,label1,label2)

人民币

In [5]:
label1='Wind橡胶指数'
label2='美元兑人民币(中间价)'
xgfx(df,label1,label2)

股市

A股

In [6]:
label1='Wind橡胶指数'
label2='沪深300'
xgfx(df,label1,label2)

美股

In [7]:
label1='Wind橡胶指数'
label2='道琼斯工业指数'
xgfx(df,label1,label2)

周期

日胶(外盘)

In [8]:
label1='沪胶指数'
label2='日胶指数'
fpath1 ='D:/文华数据导出/日线/橡胶指数.txt'
fpath2 ='D:/文华数据导出/日线/日胶指数.txt'
with open(fpath1, "rb") as f:
    df1 = pd.read_table(f,header=None,names=['date',label1],sep=',',index_col=0,usecols=[0,5])

with open(fpath2, "rb") as f:
    df2 = pd.read_table(f,header=None,names=['date',label2],sep=',',index_col=0,usecols=[0,5])

# 数据清洗
df0 = pd.concat([df1, df2], axis=1, join='inner')
df0 = df0.dropna(how='any')
df1 = df0[label1]
df2 = df0[label2]
z1 = df1.rolling(window=252).corr(other=df2)
z1 = pd.DataFrame(z1)

# ---叠加图---
pplot(df0)

# ---相关图---
pplot(z1,title='相关系数变化',drop=False)

政策(主产国,主消费国)

差价(内外盘、期现、月间)

In [9]:
label1='沪胶1月'
label2='沪胶5月'
label3='沪胶9月'
legend1 = '5月-1月'
legend2 = '9月-5月'
legend3 = '1月-9月'
df1 = df[label2] - df[label1] # 5月-1月
df2 = df[label3] - df[label2] # 9月-5月
df3 = df[label1] - df[label3] # 1月-9月
df1 = pd.DataFrame(df1)
df2 = pd.DataFrame(df2)
df3 = pd.DataFrame(df3)

pplot(df1,title=legend1)
pplot(df2,title=legend2)
pplot(df3,title=legend3)

供需

供应(显性库存)

In [10]:
label1='Wind橡胶指数'
label2='青岛保税区橡胶库存'
xgfx(df,label1,label2,period=12)

需求(轮胎开工率、汽车销量)

In [11]:
label1='Wind橡胶指数'
label2='全钢胎开工率'
xgfx(df,label1,label2,period=24)

气候

代替产品

相关分析

In [12]:
# 基本参数设置
label1='沪胶(活跃合约收盘)'
label2='顺丁橡胶(中石化华北)'
label3='丁苯橡胶(中石化华北)'
label4='丁二烯(中石化华北)'
legend = '沪胶-顺丁,沪胶-丁苯,沪胶-丁二烯'
mydf = df[[label1,label2,label3,label4]]

# 叠加图
pplot(mydf)
mydf = mydf.dropna(how='any')

# 相关分析
df1 = mydf[label1]
df2 = mydf[label2]
df3 = mydf[label3]
df4 = mydf[label4]
z1 = df1.rolling(window=252).corr(other=df2)
z2 = df1.rolling(window=252).corr(other=df3)
z3 = df1.rolling(window=252).corr(other=df4)
mydf = pd.concat([z1, z2,z3], axis=1, join='inner')

pplot(mydf,name=legend,dy=False)

沪胶与顺丁、丁苯价差跟踪

In [13]:
# 基本参数设置
label1='沪胶(活跃合约收盘)'
label2='顺丁橡胶(中石化华北)'
label3='丁苯橡胶(中石化华北)'
legend = '沪胶-顺丁,沪胶-丁苯,沪胶'

# 数据清洗
df1 = df[label1] - df[label2]
df2 = df[label1] - df[label3]
df3 = df[label1]

mydf = pd.concat([df1, df2,df3], axis=1, join='inner')
pplot(mydf,name=legend,show_grid=False)